Вводные

Общее описание задачи

Есть данные по контенту, который создают пользователи. Каждая строка в датасете — единица контента. У каждой единицы контента есть некий score, который отражает его “плохость”.

Нужно сделать

Будет особенно круто, если поделишься исходными расчетами. Это может быть что угодно: гугл таблица, ноутбук в юпитере, проект на R/Python.

1) Хотим сделать среду Wakie чище. Люди иногда постят нежелательный контент, некоторые делают это регулярно. Хотим научиться определять таких людей и как-то с ними работать.

2) Для текстового контента плохость определяется моделью и, по факту, представляет собой вероятность того, что контент пошлый. Для текстового контента значение изменяется от 0 до 1. Где 1 — точно прошлый, 0 — точно не пошлый. Для звонков указаны значения 0,1,5. 0 — человек не получил оценку после звонка, 1 — получил дизлайк, 5 — получил лайк.

3) Хотим попробовать сегментацию, чтобы научиться выделять конкретные группы людей и в дальнейшем с ними работать.

4) Единицы контента можно связать только по user_id. Топики с комментами соединить не получится, потому что у последних нет родительского айди

Соответственно комментарий под топиком — коммент

Действительно, модель плохо работает не на англе, потому что она обучалась только на англе

В выборке топики, которые были в английском фиде (ленте). Если там есть не на англе фактически, это значит, что юзер принудительно пушнул топик не на англе в англ фид

Люди оценивают просто звонок. Примерно как оценивают поездку в такси: нравится, не нравится, все равно

Посмотрим данные

Без звонков

Это ничего не дало, но было интересно

Звонки

Будем использовать звонки для определения того, насколько человек хороший или плохой

Выводы по первой части

Цель в том, чтоб определять пошлый контент и что-то с ним делать и с юзерами, которые его постят

Модель

Модель работает изначально только для английского текста, так что мы можем работать только с 80%-90% контента (определитель языка не очень точный).

Что можно с этим сделать:

Как использовать модель:

Инсайты по данным

Интресных особенностей много, но отмечу то, что пригодится для дальнейшего ресерча:

Соберем таблицу по юзерам

Будем считать, что до трех постов мы ничего не делаем, потому что это может быть случайно, или можно отправлять легкие предупреждения

Кажется, что делить юзеров на средне-пошлый и очень пошлый контент - излишнее усложнение, так что будем работать с одной метрикой

Следующая группа людей - те, кто запостил меньше 10% пошлого контента. В этой группе модель часто ошибается в пошлости. С ними мы не будем делать ничего, потому что вероятнее всего это безобидные разговоры про секс

У нас остается 22%, с которыми уже надо работать

Следующий этап - это взять людей, у которых доля выше 40%. По данным кажется, что это юзеры, которые постят самую дичь и засоряют контент. С ними как раз надо выработать стратегию работы.

Осталось 15% юзеров, которые находятся в пограничном состянии, так как контент может быть не таким уж плохим. Здесь уже будем определять плохость по рейтингу. Будем брать рейтинги от 2х оценок, чтоб было хоть какое-то альтернативное мнение:)

У нас появилась группа людей с плохим рейтингом по звонкам и долей 10-40%

Последний вариант будет банить тех, кто создал больше 10 единиц пошлого контента за месяц и больше половины это топики

Модерация оставшихся юзеров должна проходить более естественно - через жалобы

Выводы по второй части

Если мы ориентируемся на пользователя и не хотим потерять часть аудитории, которая просто хочет поговорить о сексе, то необходимо разработать такой подход, где мы теоретически будем удалять действительно раздражающих пользователей и не задевать остальных. При разделении я попыталась выделить ту аудиторию, с которой надо более мягко работать.

В итоге получились такие сегменты:

Итого у нас 4 группы:

Можно подумать как построить модель, которая будет определять никому не нужный пошлый контент, но кажется это того не стоит.

Предложения

Очевидно, стоит разделить работу с контентом и работу с пользователями. Для контента должны быть общие правила, которые все понимают.

Работа с контентом

Работа с пользователями

У нас теперь есть группы. Как можно работать с каждой из них: